package com.ocean.service.user.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.ocean.dao.user.UserDao;
import com.ocean.entity.user.User;
import com.ocean.service.user.UserService;
import com.ocean.vo.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * @author xk
 * @version 1.0
 */
@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserDao dao;

    @Override
    public R save(User user) {
        //1.查询
        User u=dao.selectByName(user.getUsername());
        //2.验证是否存在
        if(u==null) {
            //3.用户名唯一 不允许重复
            if (dao.insert(user) > 0) {
                return R.ok();
            }
        }
        return R.fail();
    }

    @Override
    public R delete(int id) {
        if(dao.delete(id)>0){
            return R.ok();
        }else {
            return R.fail();
        }
    }

    @Override
    public R update(User user) {
        if(dao.update(user)>0){
            return R.ok();
        }else {
            return R.fail();
        }
    }

    @Override
    public R queryPage(int page, int size) {
        PageHelper.startPage(page, size);
        PageInfo<User> pageInfo=new PageInfo<>(dao.selectAll());
        return R.ok(pageInfo);
    }

    @Override
    public R login(User user) {
        //1.验证参数
        if(user!=null){
            //2.查询数据库
            User user1=dao.selectByName(user.getUsername());
            //3.验证是否存在账号
            if(user1!=null){
                //4.验证密码是否一致
                if(user1.getPassword().equals(user.getPassword())){
                    //账号密码正确，登录成功！
                    //5.生成令牌（令牌：登录成功标识，可以很复杂，也可以很简单）
                    String token=user1.getId()+"";
                    return R.ok(token);
                }
            }
        }
        return R.fail("亲，账号或密码错误!!!！");
    }

}
